package com.example.innelop

import org.junit.Test


/**
 * 内置操作符：Apply操作符
 * 1）对应内部变量this，可省略；返回值为本身
 * 2) 所以支持链式调用
 * 3）返回值都是this，与apply中的匿名函数无关
 *
 * @author zhouronghua
 * @time 2022/3/23 10:38 下午
 */
class ApplyTest {

    @Test
    fun testApply() {
        val info = "I like Joe win"
        // 返回Info本身的数据
        val infoNew = info.apply {
            println("apply中对应的值字符串长度${length}")
            println("apply中对应的值字符串子串1~2${substring(1, 2)}")
        }.apply {
            println("第二轮调用${length}")
        }
        println("apply返回的字符串为本身$infoNew")
        // 链式调用
        infoNew.apply { }.apply { }
    }
}